package com.liming.user.service;

import com.liming.common.pojo.dto.cart.AddItemToCartDTO;
import com.liming.common.pojo.dto.cart.ItemInCartDTO;
import com.liming.common.pojo.vo.cart.web.ProductInCartVO;
import com.liming.common.pojo.vo.cart.web.UserCartVO;

import java.util.List;

/**
 * @author liming
 * @date 2025/3/24
 */
public interface CartService {

    /**
     * 查询用户购物车商品
     *
     * @return 用户购物车商品
     */
    List<ProductInCartVO> getProductInCart();

    /**
     * 添加商品进入购物车
     *
     * @param dto 商品信息
     * @return 是否添加成功
     */
    Boolean addItemToCart(AddItemToCartDTO dto);

    /**
     * 用户勾选购物车中商品 查询相关信息
     *
     * @param list 购物车商品列表
     * @return 用户购物车信息
     */
    UserCartVO userCartInfo(List<ItemInCartDTO> list);

    /**
     * 减少购物车中商品数量
     *
     * @param id 购物车项目ID
     * @return 是否减少成功
     */
    Boolean reduceItemById(Long id);

    /**
     * 增加购物车中商品数量
     *
     * @param id 购物车项目ID
     * @return 是否增加成功
     */
    Boolean addItemById(Long id);

    /**
     * 删除购物车中商品项
     *
     * @param ids 商品项列表ID
     * @return 是否删除成功
     */
    Boolean deleteItemsByIds(List<Long> ids);
}
